Micron Document
rns.moscow 🟥 [git]


Displaying Raw • Download

htdocs/api/db.php main (300ad1dc) Text, 1.05 KB

Tff7b72<?php
T8b949e// Shared SQLite connection + schema for the flash-stats tracker.
T8b949e// The database lives outside htdocs (repo_root/data/), so it's never
T8b949e// directly web-servable regardless of nginx config.

Tff7b72function Td2a8ffstats_dbTb4b4b4()Tff7b72: Te6edf3PDO Tb4b4b4{
Tff7b72static Te6edf3$pdo Tff7b72= Tff7b72nullTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3$pdo Tff7b72!== Tff7b72nullTb4b4b4) Tff7b72return Te6edf3$pdoTb4b4b4;

Te6edf3$dbPath Tff7b72= Tffa657dirnameTb4b4b4(Tff7b72__DIR__Tb4b4b4, T79c0ff2Tb4b4b4) Tff7b72. Ta5d6ff'/data/stats.db'Tb4b4b4;
Te6edf3$dbDir Tff7b72= Tffa657dirnameTb4b4b4(Te6edf3$dbPathTb4b4b4);
Tff7b72if Tb4b4b4(Tff7b72!Tffa657is_dirTb4b4b4(Te6edf3$dbDirTb4b4b4)) Tb4b4b4{
Tffa657mkdirTb4b4b4(Te6edf3$dbDirTb4b4b4, T79c0ff0770Tb4b4b4, Tff7b72trueTb4b4b4);
Tb4b4b4}

Te6edf3$pdo Tff7b72= Tff7b72new Te6edf3PDOTb4b4b4(Ta5d6ff'sqlite:' Tff7b72. Te6edf3$dbPathTb4b4b4);
Te6edf3$pdoTff7b72->Te6edf3setAttributeTb4b4b4(Te6edf3PDOTff7b72::Te6edf3ATTR_ERRMODETb4b4b4, Te6edf3PDOTff7b72::Te6edf3ERRMODE_EXCEPTIONTb4b4b4);
Te6edf3$pdoTff7b72->Te6edf3execTb4b4b4(Ta5d6ff'PRAGMA journal_mode = WAL'Tb4b4b4);
Te6edf3$pdoTff7b72->Te6edf3execTb4b4b4(Ta5d6ff'CREATE TABLE IF NOT EXISTS flashes (
id INTEGER PRIMARY KEY AUTOINCREMENT,
device TEXT NOT NULL,
variant TEXT NOT NULL,
platform TEXT NOT NULL,
ip_hash TEXT NOT NULL,
ts INTEGER NOT NULL
)'Tb4b4b4);
Te6edf3$pdoTff7b72->Te6edf3execTb4b4b4(Ta5d6ff'CREATE INDEX IF NOT EXISTS idx_flashes_device ON flashes(device, variant)'Tb4b4b4);
Te6edf3$pdoTff7b72->Te6edf3execTb4b4b4(Ta5d6ff'CREATE INDEX IF NOT EXISTS idx_flashes_rate ON flashes(ip_hash, ts)'Tb4b4b4);

Tff7b72return Te6edf3$pdoTb4b4b4;
Tb4b4b4}

Served by rngit 1.4.2 - Generated in 0.26s